package tp1traits.aulas

import scala.collection.mutable.ArrayBuffer
import recursos.Recurso
import tp1.Aula

trait ComparadorDeAula {
  
	def cantidadDeIntegrantes:Int
  
	 var recursosSolicitados = new ArrayBuffer[Recurso]
	 
	def agregarRecurso(recurso:Recurso){
	  recursosSolicitados += recurso
	}
	
	/**Auxiliar de meSirveAula, evalua el recurso es exactamente el que se pide, ej, metros cuadrados de un pizarron*/
	def recursoNecesario(recursosDelAula:ArrayBuffer[Recurso],recursoSolicitado:Recurso):Boolean ={
	  var esElRecurso = false
	  recursosDelAula foreach{f_recurso =>
	    if(!esElRecurso){
	    esElRecurso = f_recurso.soyIgual(recursoSolicitado)
	   }
	  }
	  esElRecurso
	}
	/**Evalua que todos los recursos solicitados esten en el Aula */
	def estanLosRecursos(recursosDelAula:ArrayBuffer[Recurso]):Boolean={
	    var estanTodosLosRecursos = true
	    
	  	  recursosSolicitados foreach{ recursoSolicitado => 
	    	if(estanTodosLosRecursos && recursosDelAula.contains(recursoSolicitado)){
	    	  estanTodosLosRecursos = recursoNecesario(recursosDelAula, recursoSolicitado)
	    	}else{
	    	  estanTodosLosRecursos = false
	    	}
	     }
	    estanTodosLosRecursos
	}
	
	def tieneCapacidad(capacidad:Int):Boolean ={
	  cantidadDeIntegrantes <= capacidad
	}
	
	def meSirveAula(aula:Aula):Boolean ={
	 estanLosRecursos(aula.darRecursos) && tieneCapacidad(aula.capacidad)
	}
}